# top-level files
set (file_root
	include/glare.core.Prerequisites.h
)

# __CMake__ files
set (file_root___cmake__
	CMakeLists.txt
	glare.core_src_files.cmake
	glare.core_src_files.f4cmake
)

# Base files
set (file_root_base
	include/glare.core.Bitwise.h
	include/glare.core.Box.h
	include/glare.core.ColourValue.h
	include/glare.core.ConfigOption.h
	include/glare.core.Factory.h
	include/glare.core.Log.h
	include/glare.core.PixelConversions.h
	include/glare.core.PixelFormat.h
	include/glare.core.StringConverter.h
	src/glare.core.ColourValue.cpp
	src/glare.core.Log.cpp
	src/glare.core.PixelFormat.cpp
	src/glare.core.StringConverter.cpp
)

# Drawing files
set (file_root_drawing
	include/glare.core.DrawContext.h
	include/glare.core.GpuPrimitiveType.h
	include/glare.core.Viewport.h
)

# Drawing -> States files
set (file_root_drawing_states
	include/glare.core.DrawStateFactory.h
)

# Drawing -> States -> Samplers files
set (file_root_drawing_states_samplers
	include/glare.core.SamplerState.h
	src/glare.core.SamplerState.cpp
)

# Driver files
set (file_root_driver
	include/glare.core.Driver.h
	include/glare.core.DriverCapabilities.h
	include/glare.core.DriverStage.h
	src/glare.core.Driver.cpp
	src/glare.core.DriverCapabilities.cpp
	src/glare.core.DriverStage.cpp
)

# Platforms files
set (file_root_platforms
	include/glare.core.PlatformWindow.h
	src/glare.core.PlatformWindow.cpp
)

# Platforms -> Android files
set (file_root_platforms_android
	include/glare.core.AndroidWindow.h
	src/glare.core.AndroidWindow.cpp
)

# Platforms -> Win32 files
set (file_root_platforms_win32
	include/glare.core.Win32Window.h
	src/glare.core.Win32Window.cpp
)

# RenderTargets files
set (file_root_rendertargets
	include/glare.core.RenderTarget.h
	include/glare.core.RenderWindow.h
	src/glare.core.RenderTarget.cpp
	src/glare.core.RenderWindow.cpp
)

# Resources -> Base files
set (file_root_resources_base
	include/glare.core.GpuResource.h
	include/glare.core.GpuResourceDescription.h
	include/glare.core.GpuResourceFactory.h
	src/glare.core.GpuResource.cpp
	src/glare.core.GpuResourceFactory.cpp
)

# Resources -> GpuBuffers files
set (file_root_resources_gpubuffers
	include/glare.core.DepthBuffer.h
	include/glare.core.GpuBuffer.h
	include/glare.core.GpuBufferDescription.h
	src/glare.core.DepthBuffer.cpp
	src/glare.core.GpuBuffer.cpp
)

# Resources -> Textures files
set (file_root_resources_textures
	include/glare.core.Texture.h
	include/glare.core.TextureDescription.h
	src/glare.core.Texture.cpp
)

# Resources -> Views files
set (file_root_resources_views
	include/glare.core.ShaderResourceView.h
	src/glare.core.ShaderResourceView.cpp
)

# Shaders files
set (file_root_shaders
	include/glare.core.ConstantBufferDescription.h
	include/glare.core.Shader.h
	include/glare.core.ShaderFactory.h
	include/glare.core.ShaderInputDeclaration.h
	src/glare.core.Shader.cpp
	src/glare.core.ShaderFactory.cpp
	src/glare.core.ShaderInputDeclaration.cpp
)

# the source groups
source_group(""                          FILES ${file_root})
source_group("__CMake__"                 FILES ${file_root___cmake__})
source_group("Base"                      FILES ${file_root_base})
source_group("Drawing"                   FILES ${file_root_drawing})
source_group("Drawing\\States"           FILES ${file_root_drawing_states})
source_group("Drawing\\States\\Samplers" FILES ${file_root_drawing_states_samplers})
source_group("Driver"                    FILES ${file_root_driver})
source_group("Platforms"                 FILES ${file_root_platforms})
source_group("Platforms\\Android"        FILES ${file_root_platforms_android})
source_group("Platforms\\Win32"          FILES ${file_root_platforms_win32})
source_group("RenderTargets"             FILES ${file_root_rendertargets})
source_group("Resources\\Base"           FILES ${file_root_resources_base})
source_group("Resources\\GpuBuffers"     FILES ${file_root_resources_gpubuffers})
source_group("Resources\\Textures"       FILES ${file_root_resources_textures})
source_group("Resources\\Views"          FILES ${file_root_resources_views})
source_group("Shaders"                   FILES ${file_root_shaders})

# append all files to the file_root
set (file_root
	${file_root}
	${file_root___cmake__}
	${file_root_base}
	${file_root_drawing}
	${file_root_drawing_states}
	${file_root_drawing_states_samplers}
	${file_root_driver}
	${file_root_platforms}
	${file_root_platforms_android}
	${file_root_platforms_win32}
	${file_root_rendertargets}
	${file_root_resources_base}
	${file_root_resources_gpubuffers}
	${file_root_resources_textures}
	${file_root_resources_views}
	${file_root_shaders}
)

# exclude all files for filter "_platforms_android" if "NOT ANDROID"
if (NOT ANDROID)
#{
	set_source_files_properties (${file_root_platforms_android} PROPERTIES HEADER_FILE_ONLY TRUE)
#}
endif (NOT ANDROID)

# exclude all files for filter "_platforms_win32" if "NOT WIN32"
if (NOT WIN32)
#{
	set_source_files_properties (${file_root_platforms_win32} PROPERTIES HEADER_FILE_ONLY TRUE)
#}
endif (NOT WIN32)
